/**
 * 定义一个go（pageNo）的函数，函数功能：<br/>
 * 1.动态改变表格数据
 * 2.修改分页信息（页码 ，当前页码选中样式，总记录数，总页数，上一页，下一页，首页，末页）
 */

function go(pageNo) {
    // 发送一个get请求。
    $.getJSON("/userList.action",{
        "pageNo":pageNo,
        "pageSize":$("#pageSize").val(),
        "username":$("#username").val()
    }, function(data){
        console.log(data);
        let totalPageNum = data.totalPageNum;
        let pageNo = data.pageNo;
        let pageSize = data.pageSize;
        let totalRecords = data.totalRecords;
        //动态改变：表格数据。
        $("table tr:gt(0)").remove();
        if (data.items == null) {
            $("<tr><td colspan='8'>没有查找到数据！</td></tr>").appendTo("table");
        } else {
            $.each(data.items, function(i,item){
                console.log(item);
                let id = item.id;
                let tr = $("<tr/>");
                let subChxTd = $("<td><input type='checkbox' class='chkSub' value='" + id + "' onclick='subChxClick()'></td>");
                subChxTd.appendTo(tr);
                let noTd = $("<td/>").text((i+1));
                noTd.appendTo(tr);
                let usernameTd = $("<td/>").text(item.username);
                usernameTd.appendTo(tr);
                let pwdTd = $("<td/>").text(item.pwd);
                pwdTd.appendTo(tr);
                let sexTd = $("<td/>").text(item.sex);
                sexTd.appendTo(tr);
                let emailTd = $("<td/>").text(item.email);
                emailTd.appendTo(tr);
                let phoneTd = $("<td/>").text(item.phone);
                phoneTd.appendTo(tr);
                let createTimeTd = $("<td/>").text(item.createTime);
                createTimeTd.appendTo(tr);
                let operationTd = $("<td/>").html("<a href='/"+id+"/updateUser.action'>更新</a>&nbsp;<a href='javascript:delUser("+id+");'>删除</a>");
                operationTd.appendTo(tr);
                tr.appendTo("table");
            });
        }
        // 将页码加一个当前选中样式。
        $(".page ul.pageNoUL li").removeClass("pageNoCurrentLi").addClass("pageNoLi");
        $(".page ul.pageNoUL li:eq(" + (pageNo-1) + ")").addClass("pageNoCurrentLi");

        $("ul.pageNoUL li").remove();
        //动态添加页码到页面上
        for (let i = 0; i < totalPageNum; i++) {
            let j = i + 1;
            let liEle = null;
            if(pageNo == j) {
                liEle = $('<li class="pageNoCurrentLi"><a href="javascript:go('+j+')">'+j+'</a></li>');
            } else {
                liEle = $('<li class="pageNoLi"><a href="javascript:go('+j+')">'+j+'</a></li>');
            }
            liEle.appendTo($("ul.pageNoUL"));
        }
        //动态改变：总页数和总记录数
        $(".page .totalPageNum").text(totalPageNum);
        $(".page .totalRecords").text(totalRecords);

        //动态改变：下一页 的 li a 的href属性
        if (pageNo == totalPageNum) {
            $(".page li.pageControlLi:eq(2) a").attr("href","javascript:void(0)");
        } else {
            $(".page li.pageControlLi:eq(2) a").attr("href","javascript:go(" + (pageNo + 1) + ")");
        }
        //动态改变：上一页 的 li a 的href属性
        if (pageNo == 1) {
            $(".page li.pageControlLi:eq(1) a").attr("href","javascript:void(0)");
        } else {
            $(".page li.pageControlLi:eq(1) a").attr("href","javascript:go(" + (pageNo - 1) + ")");
        }
        //动态改变：末页 的 li a 的href属性
        $(".page li.pageControlLi:eq(3) a").attr("href","javascript:go(" + totalPageNum + ")");

    });
}

/**
 * 单个删除用户
 */
function delUser(id) {
    /*alert("删除用户id:" + id);*/
    if(confirm("您确认删除该用户吗？")) {
        //todo: 调用后台servlet来删除用户。
        /*alert("删除成功!")*/
        /*location.href = "/delUser.action?id="+id;*/
        $("#delResult").load("/"+id+"/delUser.action",function(data){
            $("#delResult").hide();
            if("OK" == data) {
                alert("删除用户成功！");
                go(1);
            } else {
                alert("删除用户失败！");
            }
        });


    }
}


/**
 * 批量删除用户
 */
function batchDelUser() {
    // $("#chkAll")
    let allCheckedEle = $("input.chkSub:checked");
    if (allCheckedEle.length == 0){
        alert("请先选中，再批量删除！");
        return;
    }
    if(confirm("您确认批量删除这些用户吗？")) {
        let delIds = [];
        allCheckedEle.each(function(i,item){
            delIds.push($(item).val());
        });
        console.log("delIds=" + delIds.toString());
        //将批量id发送到后台Servlet进行批量删除。。。。
        $.post("/batDelUser.action", { "delIds": delIds.toString()},
            function(data){
                if("OK" == data) {
                    alert("批量删除成功！");
                    go(1);
                } else {
                    alert("批量删除失败！");
                }
            });
    }
}

/**
 *  子复选框的click事件
 */
function subChxClick() {
    let totalSub = $(".chkSub").length;
    let totalCheckedSub = $(".chkSub:checked").length;
    console.log("totalSub = " + totalSub + " , totalCheckedSub = " + totalCheckedSub);
    $("#chkAll").prop("checked",totalSub == totalCheckedSub);
}

/**
 * 页面加载完执行的内容。
 */
$(function () {
    // 1.加载网页头部的导航信息。
    $("#header").load("/header.html",function(data){
        // 将导航页面中的第4个li元素，加一个背景颜色，以表示区分。
        $("ul li:eq(3)").css("background-color", "orange");
    });

    // 2.执行go函数，传入参数1，表示：显示第一页的数据（修改分页信息）
     go(1);


     // 全选框的click事件
    $("#chkAll").click(function() {
        let allChked = $(this).prop("checked");
        $(".chkSub").prop("checked",allChked);
    });



});


